package com.jay.protocol;

import lombok.Getter;
/**
 * 协议消息的类型枚举
 */
@Getter
public enum ProtocolMessageTypeEnum {

    // 请求消息
    REQUEST(0),
    // 响应消息
    RESPONSE(1),
    // 心跳消息
    HEART_BEAT(2),
    // 其他消息
    OTHERS(3);

    // 枚举类型的键值
    private final int key;

    // 构造函数，初始化枚举类型
    ProtocolMessageTypeEnum(int key) {
        this.key = key;
    }

    /**
     * 根据 key 获取枚举
     *
     * @param key 枚举类型的键值
     * @return 对应键值的枚举类型，如果找不到则返回 null
     */
    public static ProtocolMessageTypeEnum getEnumByKey(int key) {
        // 遍历所有枚举类型
        for (ProtocolMessageTypeEnum anEnum : ProtocolMessageTypeEnum.values()) {
            // 如果找到对应的键值，则返回该枚举类型
            if (anEnum.key == key) {
                return anEnum;
            }
        }
        // 如果没有找到对应的枚举类型，则返回 null
        return null;
    }
}
